home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 176-200 / scopedisk191 / coreeye / eyemove.asm < prev    next >
Assembly Source File  |  1995-03-19  |  4KB  |  153 lines

  1. ********************************************************************************
  2. *                   EyeMove by MC68                       *
  3. *       If you find any bugs in the program please let me know.           *
  4. *               Write to the following address:                   *
  5. *                Andrzej Fien          Finished: 14.09.1990 *
  6. *                ul.Turkienicza 17/26                   *
  7. *                   35-010 Rzeszow                       *
  8. *                   POLAND                       *
  9. ********************************************************************************
  10.  
  11. OpenLibrary        EQU        -552        ;(libratyName,version)(A1,D0)
  12. CloseLibrary        EQU        -414        ;(library)(A1)
  13. GetMsg            EQU        -372        ;(port)(A0)
  14. ReplyMsg        EQU        -378        ;(message)(A1)
  15. Open            EQU        -30        ;(name,accessMode)(D1-D2)
  16. Close            EQU        -36        ;(file)(D1)
  17. Write            EQU        -48        ;(file,buffer,length)(D1-D3)
  18. OpenWindow        EQU        -204        ;(OWargs)(A0)
  19. CloseWindow        EQU        -72        ;(Window)(A0)
  20. ActivateGadget        EQU        -462        ;(Gadgets,Window,Req)(A0-A2)
  21. AllocRemember        EQU        -396        ;(RememberKey,Size,Flags)(A0,D0-D1)
  22. FreeRemember        EQU        -408        ;(RememberKey,ReallyForget)(A0,D0)
  23.  
  24. *            stack frame map
  25. PublicMemory        EQU        -20
  26. RP            EQU        -16
  27. WW            EQU        -12
  28. IntBase            EQU        -8
  29. DosBase            EQU        -4
  30.  
  31. ******************** Code ******************************************************
  32.  
  33.             LINK        A4,#-20
  34.             MOVE.L        4.W,A6
  35.             LEA        DosName(PC),A1
  36.             MOVEQ        #0,D0
  37.             JSR        OpenLibrary(A6)
  38.             MOVE.L        D0,DosBase(A4)
  39.             BEQ.W        GetOut
  40.             LEA        IntName(PC),A1
  41.             MOVEQ        #0,D0
  42.             JSR        OpenLibrary(A6)
  43.             MOVE.L        D0,IntBase(A4)
  44.             BEQ.W        CloseDos
  45.             MOVE.L        D0,A6
  46.             LEA        RememberKey(PC),A0
  47.             MOVE.L        #5120,D0
  48.             MOVEQ        #1,D1
  49.             JSR        AllocRemember(A6)
  50.             MOVE.L        D0,PublicMemory(A4)
  51.             BEQ.W        CloseInt
  52.             LEA        AddressWW(PC),A0
  53.             JSR        OpenWindow(A6)
  54.             MOVE.L        D0,WW(A4)
  55.             BEQ.W        FreeMemory
  56.             MOVE.L        D0,A1
  57.             MOVE.L        50(A1),RP(A4)
  58.             LEA        AddressGG(PC),A0
  59.             SUBA.L        A2,A2
  60.             JSR        ActivateGadget(A6)
  61.  
  62. AddressLoop        MOVE.L        WW(A4),A0
  63.             MOVE.L        86(A0),A0
  64.             MOVE.L        4.W,A6
  65.             JSR        GetMsg(A6)
  66.             TST.L        D0
  67.             BEQ.S        AddressLoop
  68.             MOVE.L        D0,A1
  69.             MOVE.W        22(A1),D2
  70.             JSR        ReplyMsg(A6)
  71.             CMPI.W        #$200,D2
  72.             BEQ.S        Quit
  73.             LEA        AddressBuffer(PC),A2
  74.             MOVEQ        #0,D0
  75.             TST.B        (A2)
  76.             BEQ.S        Quit
  77. ConvertBuffer        MOVE.B        (A2)+,D1
  78.             BEQ.S        EndBuffer
  79.             SUBI.B        #'0',D1
  80.             BCLR        #5,D1
  81.             CMPI.B        #9,D1
  82.             BLS.S        LessOrSame
  83.             SUBQ.B        #7,D1
  84. LessOrSame        CMPI.B        #$0F,D1
  85.             BHI.S        Quit
  86.             LSL.L        #4,D0
  87.             ADD.B        D1,D0
  88.             BRA.S        ConvertBuffer
  89. EndBuffer        BSR.W        MovePicture
  90.  
  91.             MOVE.L        DosBase(A4),A6
  92.             MOVE.L        #ImageFile,D1
  93.             MOVE.L        #1006,D2
  94.             JSR        Open(A6)
  95.             MOVE.L        D0,D1
  96.             BEQ.S        Quit
  97.             MOVE.L        D0,-(A7)
  98.             MOVE.L        PublicMemory(A4),D2
  99.             MOVE.L        #5120,D3
  100.             JSR        Write(A6)
  101.             MOVE.L        (A7)+,D1
  102.             JSR        Close(A6)
  103.  
  104. Quit            MOVE.L        WW(A4),A0
  105.             MOVE.L        IntBase(A4),A6
  106.             JSR        CloseWindow(A6)
  107. FreeMemory        LEA        RememberKey(PC),A0
  108.             MOVEQ        #1,D0
  109.             JSR        FreeRemember(A6)
  110. CloseInt        MOVE.L        A6,A1
  111.             MOVE.L        4.W,A6
  112.             JSR        CloseLibrary(A6)
  113. CloseDos        MOVE.L        DosBase(A4),A1
  114.             JSR        CloseLibrary(A6)
  115. GetOut            UNLK        A4
  116.             MOVEQ        #0,D0
  117.             RTS
  118.  
  119. MovePicture        MOVE.L        D0,A1
  120.             MOVE.L        PublicMemory(A4),A0
  121.             MOVE.L        A1,A3
  122.             BSR.S        Moving
  123.             LEA        16000(A3),A1
  124. Moving            MOVEQ        #40-1,D1
  125. MoveLine        MOVEQ        #64-1,D0
  126.             MOVE.L        A1,A2
  127. MoveByte        MOVE.B        (A1)+,(A0)+
  128.             DBF        D0,MoveByte
  129.             LEA        80(A2),A1
  130.             DBF        D1,MoveLine
  131.             RTS
  132.  
  133. AddressWW        DC.W        259,103,122,50
  134.             DC.B        3,2
  135.             DC.L        $240,$3100A,AddressGG,0,TextAddress,0,0
  136.             DC.W        0,0,0,0,1
  137. AddressGG        DC.W        0,0,24,26,72,10,0,3,4
  138.             DC.L        Border,0,0,0,AddressSInfo
  139.             DC.W        0,0,0
  140. AddressSInfo        DC.L        AddressBuffer,AddressBuffer
  141.             DC.W        0,7,0,0,0,0,0,0,0,0,0,0,0,0
  142. Border            DC.W        0,0
  143.             DC.B        1,0,0,5
  144.             DC.L        Lines,0
  145. Lines            DC.W        -4,-2,76,-2,76,9,-4,9,-4,-2
  146. RememberKey        DC.L        0
  147. AddressBuffer        DCB.B        7,0
  148. ImageFile        DC.B        'Image.CE',0
  149. IntName            DC.B        'intuition.library',0
  150. DosName            DC.B        'dos.library',0
  151. TextAddress        DC.B        'Points to:',0
  152.             EVEN
  153.